//
//  TomamaUI.h
//  Tomama
//
//  Created by qianfeng on 15/12/16.
//  Copyright (c) 2015年 ZhangLuJie. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/**
 网络状态
 
 - notReachable: 无网络
 - towG: 2G
 - threeG: 3G
 - fourG: 4G
 - LTE: LTE
 - wifi: WIFI
 */
typedef NS_ENUM(NSInteger, LPPZStatusType) {
    notReachable = 0,
    towG,
    threeG,
    fourG,
    LTE,
    wifi,
};

@interface TomamaUI : NSObject
/*创建UILabel
 
 *cg:       frame  布局参数
 *aligment: textAligment 0局左  1居右  2局中
 *font:     UIFont 字体大小
 *textColor:textColor 字体颜色
 *text:     text 文本内容
*/
+(UILabel *)createLabel:(CGRect)cg textAligment:(NSInteger)aligment font:(UIFont *)font textColor:(UIColor *)textColor text:(NSString *)text;

/*创建UIImageView
 *imageName: imageName 本地图片名
*/
+(UIImageView *)createImageView:(CGRect)cg backGroundImageV:(NSString *)imageName;

/*创建UIButton
 *UIButtonType :UIButtonType 按钮类型
 *cg: frame 布局参数
 *targe: targe响应对象
 *sel: sel点击方法
 *titleColor: titleColor 字体颜色
 *font: font 字体大小
 *title: title 文本内容
 *imageName: imageName 本地图片名
 *backImageName: backImageName 本地背景图片名
 */
+(UIButton *)createButton:(NSInteger)UIButtonType Frame:(CGRect)cg targ:(id)targe sel:(SEL)sel titleColor:(UIColor *)titleColor font:(UIFont*)font title:(NSString *)title  image:(NSString *)imageName backGroundImage:(NSString*)backImageName;

//获取字符串长度
+(CGFloat)getStringWeithtWith:(NSString *)str andHeigth:(CGFloat )h andFont:(UIFont *)font;

/**
 获取字符串宽度（无行间距）

 @param str 字符串
 @param w 文本长度
 @param font 字体大小
 @return 字符串宽度
 */
+(CGFloat)getStringHeightWith:(NSString *)str andWeith:(CGFloat )w andFont:(UIFont *)font;

/**
  获取字符串宽度（有行间距）

 @param str 字符串
 @param w 文本长度
 @param font 字体大小
 @param lineSpacing 行间距
 @return 字符串宽度
 */
+(CGFloat)getStringHeightWith:(NSString *)str andWeith:(CGFloat )width andFont:(UIFont *)font andLineSpacing:(CGFloat)lineSpacing;

/**
 过滤字符
 
 @param charStr 要过滤的字符
 @param string 目标字符
 @return 过滤后的字符
 */
+(NSString *)deleteChar:(NSString *)charStr inString:(NSString *)string;
//将固定格式字符串转时间（有时差）
+ (NSDate *)getDateWithString:(NSString *)dateStr;
//将固定格式字符串转时间（无时差）
+ (NSDate *)getDateWithStringNo8:(NSString *)dateStr;
//时间转字符串
+(NSString *)dateTostiring:(NSDate *)date andString:(NSString *)geshi;
//时间戳转时间（自定格式）
+(NSString*)stringToDataString:(NSString *)str andString:(NSString *)gehsi;
//时间转时间戳（自定格式）
+(NSString *)getTimeStrWithString:(NSString *)str geshi:(NSString *)geshi;

//获取今天星期几
+(NSString*)weekDayStr:(NSString *)format;

/**
 对比两个时间的差（秒）

 @param date1 起始时间
 @param date2 结束时间
 @return 时间差（秒）
 */
+(int)getTimeWithDate1:(NSDate *)date1 andDate2:(NSDate *)date2;

//获取当前时间
+(NSDate *)getNowDate;

/**
 创建一个自动消失的alert

 @param vc 显示视图
 @param message 提示语
 @param timeInterval 显示时间
 */
+(void)creatAlertWithTarget:(UIViewController *)vc message:(NSString *)message timeInterval:(CGFloat)timeInterval;

/**
 创建一个自动消失的alert(带回调)

 @param vc 显示视图
 @param message 提示语
 @param timeInterval 显示时间
 @param block 回调方法
 */
+(void)creatAlertWithTarget:(UIViewController *)vc message:(NSString *)message timeInterval:(CGFloat)timeInterval block:(void (^)())block;

//缓存加载图片
+(void)loadWedImageWithImageView:(UIImageView *)imageV andUrl:(NSString *)url;

/**
 压缩图片

 @param sourceImage 图片
 @param targetWidth 压缩大小（宽度）
 @return 压缩后的图片
 */
+(UIImage *)compressImage:(UIImage *)sourceImage toTargetWidth:(CGFloat)targetWidth;

/**
 添加滤镜

 @param originImage 需要添加滤镜的图片
 @param filterName 滤镜种类
 @return 添加好滤镜后的图片
 */
+(UIImage *)addFilterWithImage:(UIImage *)originImage andFilterName:(NSString *)filterName;
 
/**
 存储图片
 
 @param photo 图片
 @return 图片路径
 */
+(NSString *)writeToFileWithPhoto:(UIImage *)photo;

/**
 存储图片
 
 @param filePath 图片路径
 @return 图片路径
 */
+(NSString *)writeToFileWithPath:(NSString *)filePath;

/**
 删除路径文件

 @param filePath 文件路径
 */
+(void)DeleteFileWithPath:(NSString *)filePath;

/**
 获取当前试图管理器

 @return 当前试图管理器
 */
+(UIViewController *)getTopVC;

/**
 询问是否容许开启定位
 */
+(void)openGPS;

/**
 判断是否启用定位
 
 @return yes/no
 */
+(BOOL)isEnabledLocationServices;

/**
 获取网络状态

 @return LPPZStatusType
 */
+(LPPZStatusType )getWebStatus;

+(BOOL)isNotNullStr:(id)DataStr;

+(id)getNotNullStr:(id)DataStr;

/**
 过滤空字符
 */
+(NSString *)filterNullStr:(NSString *)str;


/**
 生成二维码

 @param string 内容
 @param Imagesize 二维码大小 正方形
 @param waterImagesize 内logo大小 正方形 不要超出Imagesize的30%
 @return 二维码
 */
+ (UIImage *)qrImageForString:(NSString *)string imageSize:(CGFloat)Imagesize logoImageSize:(CGFloat)waterImagesize;

/**
 进行登录判断，提示跳转登录
 */
+(BOOL)isGoToLogin;

+ (NSString *)getDeviceId;

@end
